package de.indisopht.guice.groovy;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import com.google.inject.BindingAnnotation;

/**
* Use this annotation to mark {@link java.lang.String} constants 
* to define a code base for securely loading groovy scripts 
* 
* <pre>
* <code>
* binder.bindConstant().annotatedWith(GroovyCodeBase.class).to("/secure/codeBase"));
* </code>
* </pre>
* 
* @see http://docs.codehaus.org/display/GROOVY/Security
* 
* @deprecated scheduled for removal with release 0.4.0
* 
* @author Stefan Maassen
*/
@Deprecated
@Target({ FIELD, METHOD, PARAMETER })
@Retention(RUNTIME)
@Documented
@BindingAnnotation
public @interface GroovyCodeBase {
}
